//主要实现语音识别自服务的服务器的搭建
#include "speech_server.hpp"

DEFINE_bool(run_mode,false,"程序的运行模型，false-调试；true-发布；");
DEFINE_string(log_file,"","发布模式下，用来指定日志的输出文件；");
DEFINE_int32(log_level,0,"发布模式下，用于指定日志输出等级；");

DEFINE_string(registry_host,"http://127.0.0.1:2379","服务注册中心地址");
DEFINE_string(base_service,"/service","服务监控根目录");
DEFINE_string(instance_name,"/speech_service/instance","当前实例名称");
DEFINE_string(access_host,"127.0.0.1:10001","当前实例的外部访问地址");

DEFINE_int32(listen_port,10001,"Rpc服务器监听端口");
DEFINE_int32(rpc_timeout,-1,"Rpc调用超时时间");
DEFINE_int32(rpc_threads,1,"Rpc的IO线程数量");

DEFINE_string(app_id,"120864065","语音平台应用ID");
DEFINE_string(api_key,"W7ZAZbR5qEP5ucUT9HAJo4NX","语音平台AIP密钥");
DEFINE_string(secret_key,"OeyLJ6bpdl0g514XZZzjhX2cHb9ArAX5","语音平台加密密钥");

int main(int argc, char* argv[])
{
    google::ParseCommandLineFlags(&argc,&argv,true);
    bite_im::init_logger(FLAGS_run_mode,FLAGS_log_file,FLAGS_log_level);

    bite_im::SpeechServerBuilder ssb;
    ssb.make_asr_object(FLAGS_app_id,FLAGS_api_key,FLAGS_secret_key);
    ssb.make_rpc_server(FLAGS_listen_port,FLAGS_rpc_timeout,FLAGS_rpc_threads);
    ssb.make_reg_object(FLAGS_registry_host,FLAGS_base_service+FLAGS_instance_name,FLAGS_access_host);

    auto server = ssb.build();
    server->start();
    return 0;
}